# cmus-rg (cmus-remote graphical)

A simple graphical cmus status display in C using SDL2. Developed for educational purposes, with great inspiration from [https://github.com/dashed/tetris-sdl-c]. 

### install (unix)

1. install [id3-extract-cover](https://notabug.org/strlst/id3-extract-cover)

2. install SDL2 ([www.libsdl.org](http://www.libsdl.org/)) *with* development headers and dependencies

- SDL2
- SDL2-devel
- SDL2_gfx
- SDL2_gfx-devel
- SDL2_image
- SDL2_image-devel
- SDL2_ttf
- SDL2_ttf-devel

3. use `make` to compile `cmus-rg`, or `make install` to compile and install to `/bin` (requires elevated permissions)

4. run with `./cmus-rg`, or `cmus-rg` if cmus-rg has been installed to `/bin`

### features in need of implementation

one day for sure

- [X] include fonts
- [X] UTF8 support
- [X] album art support
  - requires `id3-extract-cover`
  - supports all image formats supported by SDL2
  - supports only images encoded in id3v2 within mp3 files
- [ ] dynamic font loading
  - half heartedly implemented, just add font in `graphics.c`
- [X] better metadata presentation
- [ ] actual cmus-remote functionality (pausing cmus, et cetera)
  - [ ] pause
  - [ ] seek
  - [ ] next/prev
  - [ ] toggle aaa_mode
- [ ] scripting capabilities by adding flags
  - [ ] dimension parameters
  - [ ] font parameter
- [ ] recognition of streams instead of local files
  - perhaps by adding a stream field in the player
- [ ] streamlined process for texture aqcuisition, updates and rendering
  - probably requires refactoring
- [ ] support for resizing
  - set parameters in `def.h` instead

### license

MIT
